<?php
 
namespace PHD;

set_time_limit(0);
date_default_timezone_set("Europe/Moscow");
define('ROOT', __DIR__);
 
require ROOT . '/autoload.php';
 
$config = Config::getInstance();
 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
 
if ( false === $socket ) {
    Logger::write('Не удалось создать сокет');
    die();
} else {
    Logger::write('Сокет создан');
}
 
$result = socket_bind($socket, '127.0.0.1', $config->port);
 
if ( false === $result ) {
    Logger::write('Не удалось назначить сокет на порт');
    die();
} else {
    Logger::write('Сокет назначен на порт ' . $config->port);
}
 
socket_listen($socket, 10);

$conn = socket_accept($socket);

if ( false === $conn ) {
    Logger::write('Не удалось установить соединение');
    die();
} else {
    Logger::write('Соединение установлено');
}


$msg = '';
do {
    $msg = $msg . socket_read($conn, 1024);
} while ( !Lib::EoM($msg) );
//Logger::write($msg);
socket_close($socket);

$request = Lib::PCM($msg);
Logger::write( $request['method']['request_method'] . ' ' .
               $request['method']['uri'] . ' ' .
               $request['method']['version'] );

foreach ($request['headers'] as $key => $value) {
    Logger::write($key . ': ' .$value);
}
